package com.wanxi.generictype.treeset1;

public class Student implements Comparable {
    private String name;
    private int age;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }


    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

//    /**自然排序法
//     * 按照年龄，从小到大，排序,此方法只比较年龄，没有比较姓名，如果年龄相同，则认为是相同对象，是漏洞！！！！
//     * @param o
//     * @return
//     */
//    @Override
//    public int compareTo(Object o) {
//        if(this == o){
//            return 0;
//        }
//      if(o instanceof Student){
//          Student student = (Student)o;
//          return this.age-student.age;
//      }
//      else {
//          throw new RuntimeException("对象类型不一致");
//      }
//      }

    /**
     * 自然排序，，，通过实现Comparable接口，，，年龄、名字按照从小到大排序，先比较年龄，再比较名字。如果需要从大到小排序，则负-相应的属性的（返回值）；
     *
     * @param
     * @return
     */
    @Override
    public int compareTo(Object o) {
        if (this == o) {
            return 0;
        }
        if (o instanceof Student) {
            Student student = (Student) o;
            int value = this.age - student.age;

            if (value != 0) {
                return value;
            }
//            if(value==0){
//                return this.getName().compareTo(student.getName());
//            }
            return this.getName().compareTo(student.getName());

        } else {
            throw new RuntimeException("类型不一致");
        }
    }
}
